from 工程.凌云项目.MLS接收模块.基础配置.基础配置引用 import *

def ILS邻道抑制测试初始化():
    模块编号 = str(sys.UUTINFO[1])
    if gy参数.初始化标识 != 'ILS邻道抑制测试初始化'+模块编号:
        gy参数.初始化标识='ILS邻道抑制测试初始化'+模块编号
    else:
        return

    gy产品.模块控制.连接()
    gy仪器.频谱仪.连接()
    gy仪器.信号源.连接()
    gy产品.射频路由.连接()

    gy仪器.信号源.设置幅度(-100)
    gy仪器.信号源.调制开关('关')
    gy仪器.信号源.射频开关('开')
    gy仪器.频谱仪.设置扫频带宽(1e5)
    gy仪器.频谱仪.设置视频带宽(1e3)
    gy仪器.频谱仪.设置分析带宽(1e3)
    gy仪器.频谱仪.设置扫描时间自动()
    gy仪器.频谱仪.设置功率单位('DBM')
    gy仪器.频谱仪.设置参考幅度(11)
    gy仪器.频谱仪.设置触发源IMM()
    gy仪器.频谱仪.设置自动衰减()
    gy仪器.频谱仪.设置触发开关('开')
    gy仪器.频谱仪.设置内部增益开关(0)
    gy仪器.频谱仪.设置中心频率(70e6)
    gy仪器.频谱仪.设置最大保持开关('关')

    gy产品.射频路由.接通ILS航向频谱仪测试()
    print("ILS邻道抑制测试初始化")

def ILS航向邻道抑制(频点=108.1):
    ILS邻道抑制测试初始化()

    gy产品.射频路由.接通ILS航向频谱仪测试()
    if 频点=="抽测频点":
        随机值 = gy方法.随机数.产生随机整数(2, 37)
        if 随机值 in [0,1,9,12,18,22,38,39]:
            随机值 += 1
        频点=MLS通信协议.ILS频点[随机值][0]

    gy产品.模块控制.设置ILS航向频率(频点)

    补偿 = gy参数.通道补偿['ILS航向']

    频率 = 频点 * 1000000
    gy仪器.信号源.设置频率(频率)
    幅度起点=-99
    gy仪器.信号源.设置幅度(幅度起点 + 补偿)
    gy仪器.频谱仪.设置最大保持开关('关')

    gy方法.时间处理.延时(4)
    gy仪器.频谱仪.设置寻峰值()
    峰值 = gy仪器.频谱仪.读幅度()
    for i in range(33):
        gy仪器.信号源.设置幅度(幅度起点 + 补偿 - i)
        gy方法.时间处理.延时(0.5)
        gy仪器.频谱仪.设置寻峰值()
        峰值1 = gy仪器.频谱仪.读幅度()
        if 峰值-峰值1>0.9:
            v1=幅度起点- i
            a1=峰值1
            break
        峰值=峰值1

    gy仪器.信号源.设置频率(频率-50e3)
    gy仪器.信号源.设置幅度(幅度起点 + 补偿 + 65)
    gy方法.时间处理.延时(2)
    gy仪器.频谱仪.设置最大保持开关('关')
    # gy仪器.频谱仪.设置最大保持开关('开')
    峰值q = 0
    for i in range(11):
        gy仪器.信号源.设置幅度(幅度起点 + 补偿 + 65 + i)
        gy方法.时间处理.延时(0.2)
        gy仪器.频谱仪.设置最大保持开关('关')
        gy仪器.频谱仪.设置最大保持开关('开')
        gy方法.时间处理.延时(0.5)
        gy仪器.频谱仪.设置寻峰值()
        峰值2 = gy仪器.频谱仪.读幅度()
        if 峰值2 - 峰值q > 0.9 and 峰值2 > 峰值:
            v2 = 幅度起点 + i + 65
            b1 = 峰值2
            break
        峰值q = 峰值2
        v2 = 幅度起点 + i + 65
        b1 = 峰值2

    邻道抑制1 = v2 - v1 + (a1 - b1)

    gy仪器.信号源.设置频率(频率 + 50e3)
    gy仪器.信号源.设置幅度(幅度起点 + 补偿 + 55)
    gy方法.时间处理.延时(2)
    gy仪器.频谱仪.设置最大保持开关('关')
    # gy仪器.频谱仪.设置最大保持开关('开')
    峰值q = 0
    for i in range(11):
        gy仪器.信号源.设置幅度(幅度起点 + 补偿 + 65 + i)
        gy方法.时间处理.延时(0.2)
        gy仪器.频谱仪.设置最大保持开关('关')
        gy仪器.频谱仪.设置最大保持开关('开')
        gy方法.时间处理.延时(0.5)
        gy仪器.频谱仪.设置寻峰值()
        峰值2 = gy仪器.频谱仪.读幅度()
        if 峰值2 - 峰值q > 0.9 and 峰值2 > 峰值:
            v2 = 幅度起点 + i + 65
            b1 = 峰值2
            break
        峰值q = 峰值2
        v2 = 幅度起点 + i + 65
        b1 = 峰值2
    邻道抑制2 = v2 - v1 + (a1 - b1)
    gy方法.测试结果保存.结果保存(邻道抑制1, '左邻道')
    gy方法.测试结果保存.结果保存(邻道抑制2, '右邻道')
    if 频点 not in [108.15,109.9,111.9]:
        gy方法.测试结果保存.结果保存(频点, '频点')
        gy方法.测试结果保存.结果保存(频点-0.05, '左频点')
        gy方法.测试结果保存.结果保存(频点+0.05, '右频点')

def ILS下滑邻道抑制(频点=332):
    ILS邻道抑制测试初始化()

    gy产品.射频路由.接通ILS下滑频谱仪测试()
    if 频点=="抽测频点":
        随机值 = gy方法.随机数.产生随机整数(1, 37)
        if 随机值 in [0, 9,12,18,22,39]:
            随机值 += 1
        频点=MLS通信协议.ILS频点[随机值][1]

    gy产品.模块控制.设置ILS下滑频率(频点)
    补偿=gy参数.通道补偿['ILS下滑']

    频率 = 频点 * 1000000
    gy仪器.信号源.设置频率(频率)
    幅度起点 = -91
    gy仪器.信号源.设置幅度(幅度起点 + 补偿)
    gy仪器.频谱仪.设置最大保持开关('关')

    gy方法.时间处理.延时(4)
    gy仪器.频谱仪.设置寻峰值()
    峰值 = gy仪器.频谱仪.读幅度()

    for i in range(33):
        gy仪器.信号源.设置幅度(幅度起点 + 补偿 - i)
        gy方法.时间处理.延时(0.5)
        gy仪器.频谱仪.设置寻峰值()
        峰值1 = gy仪器.频谱仪.读幅度()
        if 峰值-峰值1>0.9:
            v1=幅度起点- i
            a1=峰值1
            break
        峰值=峰值1

    gy仪器.信号源.设置频率(频率-150e3)
    gy仪器.信号源.设置幅度(幅度起点 + 补偿 + 55)
    gy方法.时间处理.延时(3)
    gy仪器.频谱仪.设置最大保持开关('关')
    # gy仪器.频谱仪.设置最大保持开关('开')
    峰值q=峰值
    for i in range(11):
        gy仪器.信号源.设置幅度(幅度起点 + 补偿 +55 +i)
        gy方法.时间处理.延时(0.2)
        gy仪器.频谱仪.设置最大保持开关('关')
        gy仪器.频谱仪.设置最大保持开关('开')
        gy方法.时间处理.延时(0.5)
        gy仪器.频谱仪.设置寻峰值()
        峰值2 = gy仪器.频谱仪.读幅度()
        if 峰值2-峰值q>0.9 and 峰值2 >峰值:
            v2=幅度起点 + i + 55
            b1=峰值2
            break
        峰值q = 峰值2
        v2 = 幅度起点 + i + 55
        b1 = 峰值2
    邻道抑制1 = v2 - v1 + (a1 - b1)

    gy仪器.信号源.设置频率(频率+150e3)
    gy仪器.信号源.设置幅度(幅度起点 + 补偿 + 55)
    gy方法.时间处理.延时(3)
    gy仪器.频谱仪.设置最大保持开关('关')
    # gy仪器.频谱仪.设置最大保持开关('开')
    峰值q = 峰值
    for i in range(11):
        gy仪器.信号源.设置幅度(幅度起点 + 补偿 +55 +i)
        gy方法.时间处理.延时(0.2)
        gy仪器.频谱仪.设置最大保持开关('关')
        gy仪器.频谱仪.设置最大保持开关('开')
        gy方法.时间处理.延时(0.5)
        gy仪器.频谱仪.设置寻峰值()
        峰值2 = gy仪器.频谱仪.读幅度()
        if 峰值2-峰值q>0.9 and 峰值2 >峰值:
            v2=幅度起点 + i + 55
            b1=峰值2
            break
        峰值q = 峰值2
        v2 = 幅度起点 + i + 55
        b1 = 峰值2
    邻道抑制2 = v2-v1+(a1-b1)

    gy方法.测试结果保存.结果保存(邻道抑制1, '左邻道')
    gy方法.测试结果保存.结果保存(邻道抑制2, '右邻道')
    if 频点 not in [329.15,332.0,335.0]:
        gy方法.测试结果保存.结果保存(频点, '频点')
        gy方法.测试结果保存.结果保存(频点-0.15, '左频点')
        gy方法.测试结果保存.结果保存(频点+0.15, '右频点')

if __name__=='__main__':
    pass
    sys.UUTINFO = [0, 1]
    ILS航向邻道抑制(109.9)